package co.edu.javeriana.konigsberg.xavier.dao;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityTransaction;

import co.edu.javeriana.konigsberg.xavier.dao.desc.ArchivoDAOLocal;
import co.edu.javeriana.konigsberg.xavier.dto.PropuestaArchivoDTO;
import co.edu.javeriana.konigsberg.xavier.entidad.Archivo;

@Stateless
public class ArchivoDAO extends DAO<Archivo> implements ArchivoDAOLocal{

	@Override
	public List<Archivo> obtenerLista() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Archivo> obtenerListaPorPadre(BigInteger idPadre) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Archivo obtenerPorId(BigInteger idArchivo) {
		List<Archivo> lista = (List<Archivo>) em.createNamedQuery("Archivo.findById").setParameter("idArchivo", idArchivo).getResultList();
		return lista.get(0);
	}

	@Override
	public void guardar(Archivo archivo) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(archivo);
		tx.commit();
	}

	@Override
	public void actualizar(Archivo archivo) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(archivo);
		tx.commit();
	}

	@Override
	public List<Archivo> obtenerListaPorTipo(String tipoArchivo, BigInteger idPrograma) {
		List<Archivo> lista = (List<Archivo>) em.createNamedQuery("Archivo.findByTipo").setParameter("tipoArchivo", tipoArchivo).setParameter("idPrograma", idPrograma).getResultList();
		return lista;
	}
}
